package com.yjzx.util.service.enums.file;

/**
 * @author yjzx
 * @date 2024/8/13
 * @description 音频文件类型枚举
 */
public enum AudioFileTypeEnum implements FileType {
    /**
     * 音频文件类型枚举
     */
    AU(".au", "audio/basic"),
    MP3(".mp3", "audio/mpeg"),
    M4A(".m4a", "audio/mp4"),
    M4B(".m4b", "audio/mp4"),
    M4P(".m4p", "audio/mp4"),
    M4R(".m4r", "audio/mp4"),
    FLAC(".flac", "audio/flac"),

    MKA(".mka", "audio/x-matroska"),
    ALAC(".alac", "audio/alac"),

    AAC(".aac", "audio/aac"),
    WAV(".wav", "audio/wav"),
    AIFFC(".aifc", "audio/aiff"),
    AIF(".aif", "audio/aiff"),
    AIFC(".aifc", "audio/aiff"),

    DSF(".dsf", "audio/x-dsf"),
    OGG(".ogg", "audio/ogg"),
    OPUS(".opus", "audio/ogg"),
    WMA(".wma", "audio/x-ms-wma"),

    MIDI(".midi", "audio/midi"),
    MID(".mid", "audio/midi"),
    M3U(".m3u", "audio/x-mpegurl"),
    AMR(".amr", "audio/amr"),
    DTSL(".dtsl", "audio/vnd.dts.hd"),
    DTSH(".dtsh", "audio/vnd.dts.hd"),
    DTS(".dts", "audio/vnd.dts"),
    ACP(".acp", "audio/x-mei-aac"),

    AIFF(".aiff", "audio/aiff"),
    ;

    AudioFileTypeEnum(String extension, String mimeType) {
        this.extension = extension;
        this.mimeType = mimeType;
    }

    private final String extension;

    private final String mimeType;

    @Override
    public String getExtension() {
        return extension;
    }

    @Override
    public String getMimeType() {
        return mimeType;
    }

}
